package day05;

import java.sql.Array;
import java.sql.SQLOutput;
import java.util.Arrays;

/** 数组的演示*/
public class ArrayDemo {
    public static void main(String[] args) {
        //1）数组的访问：
        int [] arr = new int[3];
        System.out.println("数组的长度："+arr.length);  //3,长度即元素个数
        System.out.println("数组第1个元素的值为："+arr[0]);  //0

        arr [0] = 100;  //给第1个元素赋值为100
        arr [1] = 200;  //给第2个元素赋值为200
        arr [2] = 300;  //给第3个元素赋值为300
        //arr [3] = 400;  //运行时会发生数组下标越界异常
        System.out.println(arr[2]);  //300，输出最后一个元素的值
        System.out.println(arr[arr.length-1]);  //300，输出最后一个元素的值

        //2)数组的遍历/迭代：从头到尾走一遍
        int [] arr1 = new int[10];
        for (int i = 0; i < arr1.length; i++) {  //遍历arr数组
            //arr1[i] = 100;  //给每个元素赋值为100
            arr1 [i] = (int)(Math.random()*100);  //给每个元素赋值为0到99的随机数
            System.out.println(arr1[i]);  //输出每个元素的值
        }

        //3)数组的复制 
        int [] a = {10,20,30,40,50};  //定义一个新的数组a
        //  a:源数组
        //  b:目标数组
        //  6：目标数组的长度
        //  --若目标数组的长度 > 源数组的长度，则末尾补默认值
        //  --若目标数组的长度 < 源数组的长度，则将末尾的截掉

        int [] b = Arrays.copyOf(a,6);
        // int [] b = Arrays.copyOf(a,3);

        for (int i = 0; i < b.length; i++) {  //元素遍历
            System.out.println(a[i]);
        }

        //4)数组的扩容 (创建了一个更大的新的数组，并将数据复制进去了)
        a = Arrays.copyOf(a,a.length+1);
        for (int i = 0; i < a.length; i++) {
            System.out.println(a[i]);
            
        }

    }
}
